package com.edu.method;

import java.util.Random;

public class MethodPractice03 {
    public static void main(String[] args) {
        //小总结案例：生成一个随机的验证码
        String code=createCode(5);
        System.out.println("生成的随机验证码为"+code);

        //随机生成验证码，简便方法
        //直接用一个字符串包含0-9.a-z.A-Z所以字母，然后使用CharAt(index)随机索引获取字母
        String all="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        String ch="";//定义一个空的字符串用于接收随机生成的字符
        Random r = new Random();
        //随机生成五个字符
        for (int i = 0; i < 5; i++) {
            ch+=all.charAt(r.nextInt(all.length()));
        }
        System.out.println("简易方法生成的随机验证码为"+ch);
    }
    //生成随机验证码的方法，随机生成一个可能包含数字、大写字母、小写字母的验证码
    public static String createCode(int n){//生成一个n位组成的验证码
        Random r = new Random();
        String ch="";//用于接收字符的空字符串

        for (int i = 0; i < n; i++) {
            //用随机生成的0、1、2、代表大写字母、小写字母、数字，总的分为三种类型
            int type=r.nextInt(3);//
            switch (type){
                case 0:
                    char c =(char)(r.nextInt(26) + 65);//强转int为char类型，A-Z共26个英文字母(0-25) A为65，所以要加上65
                    ch+=c;
                    break;
                case 1:
                    char d=(char)(r.nextInt(26)+97);//a-z共26个英文字母(0-25) A为 97，所以要加上97
                    ch+=d;
                    break;
                case 2:
                    ch+=r.nextInt(10);//0-9
                    break;
            }
        }
        return ch;
        }
}
